package com.zpark.se.io.raf;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.RandomAccessFile;

/**
 * RandomAccessFile类：
 *      所谓动态读取是指从文件的任意位置开始访问文件，而不是必须从文件开始位置读取到文件末尾。
 *  动态读取需要用到 Java 中的 RandomAccessFile 类。
 *		RandomAccessFile 是 Java 输入/输出流体系中功能最丰富的文件内容访问类，它提供了众多
 *	的方法来访问文件内容，它既可以读取文件内容，也可以向文件输出数据。由于 RandomAccessFile 可
 *	以从任意位置访问文件，所以在只需要访问文件部分内容的情况下，使用 RandomAccessFile 类是一个
 *	很好的选择。
 *
 * RandomAccessFile 类的构造方法有如下两种重载形式。
 *		1、RandomAccessFile(File file, String mode)：访问参数 file 指定的文件，
 * 访问形式由参数 mode 指定，mode 参数有两个常用的可选值 r 和 rw，其中 r 表示只读，rw 表示读写。
 *		2、RandomAccessFile(String name, String mode)：访问参数 name 指定的文件，mode
 * 参数的含义同上。
 *		注意：如果使用 rw 方式声明 RandomAccessFile 对象时，要写入的文件不存在，系统将自动进行
 *	创建。
 */
public class Demo01 {
    public static void main(String[] args) throws FileNotFoundException {
        // 声明路径
        String path = "src/com/zpark/se/io/raf/content/raf.txt";
        // 创建随机文件读取对象
        RandomAccessFile raf = new RandomAccessFile(path, "rw");

        // 创建file对象
        File f = new File(path);
        // 创建随机文件读写对象
        RandomAccessFile raf2 = new RandomAccessFile(f, "rw");
    }
}
